跳到主要内容

逻辑日志记录介绍

本章内容

要显示逻辑日志文件所包含的逻辑日志记录,请使用 onlog 命令。

本章提供以下信息:

  • 阅读逻辑日志记录的简要指南
  • 不同逻辑日志记录类型的列表

一般来说,您无需阅读和理解逻辑日志文件。然而在调试情况下,onlog 输出是有用的。例如:您可能想要使用 onlog 跟踪特定事务或查看数据库服务器对特定 tblspace 进行了什么更改。也可以使用 onlog 调查前滚过程中所发生的错误的原因。

关于逻辑日志记录

大多数 SQL 语句生成多个逻辑日志记录。当数据库服务器在逻辑日志中记录以下事件时,解释逻辑日志记录就更为复杂:

  • 删除表或索引的事务
  • 回滚事务
  • 在其中事务任活动的检查点
  • 分布式事务

以下各节讨论这些事务的逻辑日志记录。

删除表或索引的事务

一旦数据库服务器从数据库中删除了表或索引,它无法回滚该删除操作。如果事务包含 DROP TABLE 或 DROP INDEX 语句,那么数据库服务器如下处理该事务:

  1. 数据库服务器完成事务的所有其他部分,并写下相关的逻辑日志记录。
  2. 数据库服务器将 BEGCOM 记录写入逻辑日志和与 DROP TABLE 或 DROP INDEX 相关联的记录(例如:DINDEX )。
  3. 数据库服务器写入 COMMIT 记录。

如果事务在数据库服务器将 BEGCOM 记录写入逻辑日志之后意外终止,那么数据库服务器在恢复过程中前滚该事务,因为它无法回滚删除操作。

回滚的事务

当发生回滚时,数据库服务器为回滚的逻辑日志中的每个记录生成补偿日志记录(CLR)。如果在回滚过程中发生系统故障,那么数据库服务器使用 CLR 。CLR 向数据库服务器提供有关在故障发生前回滚进度的信息。换句话说,数据库服务器使用 CLR 来记录回滚。

如果 CLR 包含短语 includes next record ,那么打印的下一条日志记录作为补偿操作包含在 CLR 日志记录中。否则,必须假定补偿操作是 CLR 的 link 字段所指向的日志记录的逻辑撤销。

带有活动事务的检查点

如果任何事务在检查点时是活动的,那么检查点记录包含使用以下各列描述每个活动事务的子条目:

  • 日志开始(十进制格式)
  • 事务 ID(十进制格式)
  • 唯一日志号(十进制格式)
  • 日志位置(十六进制格式)
  • 用户名

分布式事务

当分布式事务(跨多个数据库服务器的事务)生成日志记录,它们与非分布式事务稍有不同。如果事务提交时发生故障,那么可能需要阅读并解释它们,以确定这两个数据库服务器上事务的状态。

分布式事务中涉及以下日志记录:

  • BEGPREP
  • ENDTRANS
  • HEURTX
  • PREPARE
  • TABLOCKS

如果正在使用 TP/XA 执行分布式事务,那么数据库服务器使用 XAPREPARE 记录而不是 PREPARE 记录。

逻辑日志记录的结构

每个逻辑日志记录都有头信息,根据记录类型,输出中也会出现其他信息列,就像逻辑日志记录类型和附加列中解释的那样。

逻辑日志记录头

下表包含了说明显示逻辑日志记录的头列的样本输出。

表: onlog 的样本输出

addrlentypexididlink
2c01832BEGIN630
2c038140HDELETE602c018
2c0c464DELITEM602c038
2c10440DELITEM602c0c4
2c12c72HDELETE602c104
2c17444DELITEM602c12c
2c1a072HDELETE602c174
2c1e844DELITEM602c1a0
2c21464HDELETE602c1e8
2c25456DELITEM602c214
2c28c48DELITEM602c254
2c2bc24PERASE602c28c
2c2d420BEGCOM602c2bc
2c2e824ERASE602c2d4
2c30028CHFREE602c2e8
2c31c24COMMIT602c300

表: 定义了每个头列的内容。

头字段内容格式
addr日志记录地址(日志位置)十六进制
len记录长度(字节)十进制
type记录类型的名称ASCII
xid事务编号十进制
id逻辑日志编号十进制
link到事务中的前一记录的链接十六进制

逻辑日志记录类型和附加列

除了对给个记录显示 6 个头列之外,一些记录类型还显示信息的附加列。信息的显示会根据记录类型而变化。

下表列出了所有记录类型及它们附加列。

操作列标识生成日志条目的数据服务器操作类型。附加列和格式列描述逻辑日志记录头中描述的头以外每个记录类型还出现什么信息。

记录类型操作附加列和格式
ADDCHK添加 chunk● chunk 编号 - Decimal
● chunk 名称 - ASCII
ADDDBS添加 dbspace● dbspace 名称 - ASCII
ADDITEM将条目添加到索引中● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● 逻辑页 - Decimal
● 键号 - Decimal
● 键长 - Decimal
ADDLOG添加日志● 日志编号 - Decimal
● 日志长度(页)- Decimal
● 页号 - Hexadecimal
ALLOCGENPG分配类属页● tblspace ID - Decimal
● rowid - Decimal
● slot 标识和长度 - Decimal
● 页的版本(如果删除的话)- Decimal
● 标识,vimage 记录 - Decimal
● 上一个 rowid - Decimal
● 数据 - ASCII
ALTERDONE对分片的更改完成● tblspace ID - Hexadecimal
● 上一页的物理页号 - Hexadecimal
● 逻辑页号 - Decimal
● 更改的版本 - Decimal
ALTSPCOLSNEW变更表中的已更改列● 列的数量 - Decimal
● 特殊列列表 - 数组
ALTSPCOLSOLD变更表中的已更改列● 列的数量 - Decimal
● 特殊列列表 - 数组
BADIDX错误的索引● tblspace ID - Hexadecimal
BEGCOM开始提交●(无) - (无)
BEGIN开始工作● 数据 - Decimal
● 时间 - Decimal
● SID - Decimal
● 用户 - ASCII
BEGPREP由协调者数据库服务器所写入,以记录两阶段提交协议的开始● 标识 - Decimal(在分布式事务中值为 0)
● 参与者的数量 - Decimal
BEGWORK开始事务● 开始事务的时间 - Decimal
● 用户 ID - Decimal
● 进程 ID - Decimal
BFRMAP简单大对象自由图页更改● tblspace ID - Hexadecimal
● bpageno - Hexadecimal
● 状态 USED/FREE 日志 ID - Decimal
● 上一页 - Hexadecimal
BLDCL构建 tblspace● tblspace ID - Hexadecimal
● fextsize - Decimal
● nextsize - Decimal
● 行大小 - Decimal
● ncolumns - Decimal
● 表名 - ASCII
BMAPFULL位图已修改以准备用于变更● tblspace ID - Hexadecimal
● 位图页号 - Decimal
BMAP2TO42 位位图更改成 2 个 4 位位图● tblspace ID - Hexadecimal
● 2 位位图页号 - Decimal
● 标识 - Decimal
BSPADD添加 blobspace● blobspace 名称 - ASCII
BTCPYBCK将子键复制回父键● tblspace ID - Hexadecimal
● 父逻辑页 - Decimal
● 子逻辑页 - Decimal
● slot - Decimal
● 行关闭 - Decimal
● 键号 - Decimal
BTMERGE合并 B-tree 节点● tblspace ID - Hexadecimal
● 父逻辑页 - Decimal
● 左逻辑页 - Decimal
● 右逻辑页 - Decimal
● 做 slot - Decimal
● 左行关闭 - Decimal
● 右 slot - Decimal
● 右行关闭 - Decimal
● 键号 - Decimal
BTSHUFFL拖拽 B-tree 节点● tblspace ID - Hexadecimal
● 父逻辑页 - Decimal
● 右逻辑页 - Decimal
● 左逻辑页- Decimal
● 左 slot - Decimal
● 左行关闭 - Decimal
● 键号 - Decimal
● 标识 - Hexadecimal
BTSPLIT分割 B-tree 节点● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● 父逻辑页 - Decimal
● 左逻辑页 - Decimal
● 右逻辑页 - Decimal
● 无限逻辑页 - Decimal
● 根左逻辑页 - Decimal
● 中间分割 - Decimal
● 键号 - Decimal
● 键长 - Decimal
CDINDEX创建拆离索引● 数据库名 - ASCII
● 所有者 - ASCII
● 表名 - ASCII
● 索引名 - ASCII
CDR捕获由更新语句修改过得表列组,例如: bitvector 。此日志记录允许 Enterprise Replication 只捕获更改过得列传输给目标站点。
在该示例中,表的前 6 列从未更改过(bitvector 中的最左面 6 位是 0 ),第 7 和第 8 列更新过(第7 和 8 位是 1 )等等。onlog 输出显示了与输出的单行中相符的同样多的 bitvector 位。要查看以十六进制显示的整个 bitvector ,请使用 onlog -l 命令
● CDR 记录的名称 - ASCII
● 分区号 - Hexadecimal
● bitvector - 二进制
CDR 日志记录的样本 onlog 输出:
adr len type xid id link
40 36 CDR 14 0 18
name partno bitvector
UPDCOLS 10009a 000000110100110100
CHALLOCChunk extent 分配● 页号 - Hexadecimal
● 大小 - Hexadecimal
CHCOMBINEChunk extent 结合● 页号 - Hexadecimal
CHFREEChunk extent 释放● 页号 - Hexadecimal
● 大小 - Hexadecimal
CHKADJUP更新磁盘上的 chunk 附件。当从保留区域移动空间至元数据或用户数据区域或当用户添加sbspace chunk 时,数据库服务器写入该记录● chunk 编号 - Integer
● ud1_start_page - Integer
● ud1_size - Integer
● md_start_page - Integer
● md_size - Integer
● ud2_start_page - Integer
● ud2_size - Integer
● 标志 - Hexadecimal
CHPHYLOG更改物理日志位置● 页号 - Hexadecimal
● 大小(千字节) - Hexadecimal
● dbspace 名 - ASCII
CHRESERV保留用于元数据窃取的 extent 。该记录是在添加 sbspace 块时写入的。● chunk 编号 - Integer
● 页号 - Integer
● 长度 - Integer
CHSPLITChunk extent 分割● 页号 - Hexadecimal
CINDEX创建索引● tblspace ID - Hexadecimal
● 长的 rowid - Decimal
● 高的 rowid - Decimal
● 索引描述符 - ASCII
COARSELOCK粗粒度锁定● tblspace ID - Hexadecimal
● 旧的粗粒度锁定标志值 - Decimal
● 新的粗粒度锁定标志值 - Decimal
CKPOINT检查点● 最大用户数 - Decimal
● 活动事务的数量 - Decimal
CLR补偿日志记录:在回滚过程中创建● (无) - (无)
CLUSIDX创建群集索引● tblspace ID - Hexadecimal
● 键号 - Decimal
COLREPAI调整 BYTE、 TEXT 或 VARCHAR 列● tblspace ID - Hexadecimal
● 已调整列的数量 - Decimal
COMMIT提交工作● 日期 - Decimal
● 时间 - Decimal
COMTAB压缩页上的 slot 表● 逻辑页编号 - Decimal
● 已移动 slots 的数量 - Decimal
● 已压缩的 slot 对 - ASCII
COMWORK结束事务并提交工作● 结束事务时间 - Decimal
● 开始事务时间 - Decimal
DELETE删除前映象● tblspace ID - Hexadecimal
● rowid - Hexadecimal
DELITEM从索引中删除条目● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● 逻辑页 - Decimal
● 键号 - Decimal
● 键长 - Decimal
DERASE删除关闭 dbspace 中的 tblspace● tblspace 编号 - Hexadecimal
● 表锁编号 - Decimal
DFADDEXT已添加的下一个 extent● partnum - Hexadecimal
● 列表中 extent 的偏移量 - Hexadecimal
● 页中的 extent 大小 - Decimal
● extent 的物理地址 - Offset and chunk no-hex
DFDRPEXT删除源 extent● partnum - Hexadecimal
● 列表中 extent 的偏移量 - Hexadecimal
● extent 源大小 - Decimal
● 物理地址 - offset and chunk no-hex
DFEND结束分片的操作● partnum - Hexadecimal
DFMVPG将页从旧的 extent 移到新的 extent● partnum - Hexadecimal
● 新的 extent 的偏移量 - Hexadecimal
● 资源的逻辑页号 - Hexadecimal
● 目的地的物理地址 - Offset and chunk no-hex
●资源的逻辑地址 - Offset and chunk no-hex
DFREMDUM移除虚拟条目● partnum - Hexadecimal
DFSTART分片开始操作● partnum - Hexadecimal
DINDEX删除索引● tblspace ID - Hexadecimal
● 键号 - Decimal
DRPBSP删除 blobspace● blobspace 名 - ASCII
DRPCHK删除 chunk● chunk 编号 - Decimal
● chunk 名 - ASCII
DRPDBS删除 dbspace● dbspace 名称 - ASCII
DRPLOG删除日志● 日志编号 - Decimal
● 日志大小(页) - Decimal
● 页号 - Hexadecimal
ENDTRANS由协调者和参与者数据库服务器写入以记录事务的结束。ENDTRANS 指示数据库服务器从其共享内存事务表中除去事务条目并关闭该事务。
在协调者逻辑日志中,导致已提交事务的每个 BEGPREP 是与 ENDTRANS 记录配对的。如果协调者的最后决定时回滚事务,那么不写入 ENDTRANS 记录。
在参与者逻辑日志中,每个 ENDTRANS 记录是与 HEURTX 记录配对的
● (无) - (无)
ERASE删除 tblspace● tblspace ID -Hexadecimal
FREE_RE将保留 extent 的 extent 分配给 sbspace chunk 的元数据或用户数据区域● chunk 编号 - Integer
● 页号 - Integer
● 长度 - Integer
● 标志 - Hexadecimal
HDELETE删除主行● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● slotlen - Decimal
HEURTX由参与者数据库服务器写入,以记录回滚事务的试探性决策。它应与指示事务已回滚的标准 ROLLBACK 记录相关联● 标志 - Hexadecimal(值始终是 1 )
HINSERT主行插入● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● slotlen - Decimal
HUPAFT主行更新,后映象● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● slotlen - Decimal
HUPBEF主行更新,前映象
此外,HUPBEF 头的标志字段可能包含以下值:
LM_PREVLSN
确认存在 LSN
LM_FIRSTUPD
确认这是该事务对此 rowID 的首次更新
● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● slotlen - Decimal
● LSN(可选)- Decimal
HUPDATE如果主行更新前映象和后映象都可以适合单个页,那么数据库服务器写入单个 HUPDATE 记录。
此外, HUPDATE 日志的标志字段可能包含以下值:
LM_PREVLSN
确认存在 LSN
LM_FIRSTUPD
确认这是该事务对此 rowID 的首次更新
● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● 向前 ptr rowid - Hexadecimal
● 旧的 slotlen - Decimal
● 新的 slotlen - Decimal
● 块的数量 - Decimal
● LSN (optional) - Decimal
IDXFLAGS索引标志● tblspace ID - Hexadecimal
● 键号 - Hexadecimal
INSERT插入后映象● tblspace ID - Hexadecimal
● rowid - Hexadecimal
ISOSPCOMMIT记录已隔离的保存点提交● 结束事务时间 - Decimal
● 开始事务时间 - Decimal
LCKLVL锁定方式(页或行)● tblspace ID - Hexadecimal
● 新的锁定方式 lockmode - Hexadecimal
● 旧的锁定方式 - Hexadecimal
LG_ADDBPOOL在线添加缓冲池● 页大小(以字节计) - Decimal
● 池中缓冲区数 - Decimal
● lru 队列数 - Decimal
● lru_max_dirty 百分比 - Decimal
● lru_min_dirty 百分比 - Decimal
PTRUNCATE表示意图截断表。分区标记为丢弃或复用,具体取决于指定的命令选项● tblspace ID - Hexadecimal
TRUNCATETRUNCATE 已释放了 extents 且将落实该事务● tblspace ID - Hexadecimal
MVIDXND索引节点已移动以允许 2 位至 4 位的位图转换● tblspace ID - Hexadecimal
● 旧页号 - Decimal
● 新页号 - Decimal
● 父页号 - Decimal
● 父 slot 号 - Decimal
● 父 slot 偏移量 - Decimal
● 键号 - Decimal
PBDELETE删除 tblspace blobpage● bpageno - Hexadecimal
● 状态 USED/FREE 唯一 ID - Decimal
PBINSERT添加 tblspace blobpage● bpageno - Hexadecimal
● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● slotlen - Decimal
● pbrowid - Hexadecimal
PDINDEX预删除索引● tblspace ID - Hexadecimal
PGALTER原位更改了页● tblspace ID - Hexadecimal
● 物理页号 - Hexadecimal
PGMODE页模式已在位图中修改● tblspace ID - Hexadecimal
● 逻辑页号 - Decimal
● 旧模式 - Hexadecimal
● 新模式 - Hexadecimal
PERASE预擦除旧文件。标记要删除的表。数据库服务器释放提交的空间● tblspace ID - Hexadecimal
PNGPALIGN8将该 tblspace 中的页用作类属页● 无
PNLOCKID更改 tblspaces 索标识● tblspace ID - Hexadecimal
● 旧锁 ID - Hexadecimal
● 新锁 ID - Hexadecimal
PNSIZES设置 tblspace extent 大小● tblspace ID - Hexadecimal
● fextsize - Decimal
● nextsize - Decimal
PREPARE由参与者数据库服务器写入,以记录参与者提交事务的能力(如果这样指示过)。● 协调者的数据库服务器名称 - ASCII
PTADESC添加更改描述信息● tblspace ID - Hexadecimal
● 上一页的物理页号 - Hexadecimal
● 逻辑页号 - Decimal
● 已添加列的数量 - Decimal
PTALTER分片更改已开始● tblspace ID - Hexadecimal
● 上一页的物理页号 - Hexadecimal
● 逻辑页号 - Decimal
● 更改 desc 页号 - Decimal
● 已添加的列数 - Decimal
● 更改的版本 - Decimal
● 已添加的行大小 - Decimal
PTALTNEWKEYD在变更表命令之后更新tblspace 头中的键描述符● 键描述符的字节数 - Decimal
● 键描述符中的数据 - ASCII
PTALTOLDKEYD在变更表命令之后更新键描述符● 键描述符的字节数 - Decimal
● 键描述符中的数据 - ASCII
PTCOLUMN向分片添加特殊列● tblspace ID - Hexadecimal
● 列的数量 - Decimal
PTEXTENDTblspace 扩展● tblspace ID - Hexadecimal
● 上一逻辑页 - Decimal
● 第一物理页 - Hexadecimal
PTRENAME重命名表● tblspace ID - Hexadecimal
● 旧表名 - ASCII
● 新表名 - ASCII
RDELETE剩余页删除● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● slotlen - Decimal
● hrowid (可选)- Decimal
● poffset (可选)- Decimal
RENDBS重命名 dbspace● 新的 dbspace 名称 - ASCII
REVERT记录 dbspace 到较早版本 dbspace 的复原● 复原事件的类型 - Decimal
● arg1 - Decimal
● arg2 - Decimal
● arg3 - Decimal
RINSERT剩余页插入● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● slotlen - Decimal
● hrowid(可选)- Decimal
● poffset(可选)- Decimal
ROLLBACK回滚工作● 日期 - Decimal
● 时间 - Decimal
ROLWORK结束事务并回滚工作● 结束事务时间 - Decimal
● 开始事务时间 - Decimal
RSVEXTEND记录对保留页的扩展● 页数 - Decimal
● extent 的物理页号 - Hexadecimal
RTREE记录对 R-tree 索引页的插入和删除。( R-tree 索引页上的其他操作是以物理方式记录的)记录子类型为:
● LEAFINS - 在叶页中插入项
● LEAFDEL - 删除叶页中的项
● 记录子类型 - ASCII
● 索引页 rowid - Hexadecimal
● tuple 长度 - Decimal
● 基本表 rowid - Decimal
● 基本表 fragid - Decimal
● 删除标志 - Decimal
RUPAFT剩余页更新,后映象● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● slotlen - Decimal
RUPBEF剩余页更新,前映象● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● slotlen - Decimal
● hrowid(可选)- Decimal
● poffset (可选)- Decimal
RUPDATE如果剩余页更新前映象和数据库都可以适合单个页,那么数据库服务器写入一个 RUPDATE 记录● tblspace ID - Hexadecimal
● rowid - Hexadecimal
● 向前 ptr rowid - Hexadecimal
● 旧 slotlen - Decimal
● 新 slotlen - Decimal
● 块的数量 - Decimal
● hrowid (可选) - Decimal
● poffset (可选) - Decimal
SBLOB指示智能大对象的子系统日志记录 各种记录子类型为:
● CHALLOC
● CHCOMBINE
● CHFREE
● CHSPLIT
● CREATE
● DELETES
● EXTEND
● HDRUPD
● PDELETE
● PTRUNC
● REFCOUNT
● UDINSERT
● UDINSERT_LT
● UDUPAFT
● UDUPAFT_LT
● UDUPAFT
● UDUPAFT_LT
● UDWRITE
● UDWRITE_LT
SYNC如果该日志文件是空的,且管理员指示数据库服务器切换至下一个日志文件,那么写人逻辑日志文件● (无) - (无)
TABLOCKS由协调者或数据库服务器写入。它与 BEGPREP 或 PREPARE 记录相关联。并包含由事务持有的已锁定 tblspace 列表(按 tblspace 编号)。(在分布式事务中,事务显示为锁的所有者。)● 锁的数量 - Decimal
● tblspace 编号 - Hexadecimal
UDINSERT附加新的用户数据● 锁的数量 - Decimal
● tblspace 编号 - Hexadecimal
UDUPAFT如果 UDWRITE 代价太高,那么更新用户数据后映象● chunk - Decimal
● chunk 中的页 - Hexadecimal
● 页中的偏移量 - Hexadecimal
● 数据长度 - Hexadecimal
UDUPBEF如果 UDWRITE 代价太高,那么更新用户数据前映象● chunk - Decimal
● chunk 中的页 - Hexadecimal
● 页中的偏移量 - Hexadecimal
● 数据长度 - Hexadecimal
UDWRITE更新用户数据(差分映象)● chunk - Decimal
● chunk 中的页 - Hexadecimal
● chunk 中的偏移量 - Hexadecimal
● 写入前长度 - Hexadecimal
● 写入后长度 - Hexadecimal
UNDO将要回滚的一系列事务的头记录● 计数 - Decimal
UNDOBLDC如果应回滚 CREATE TABLE 语句但由于相关 chunk 已关闭而无法回滚,呢么写入该记录。当重放日志文件时,将删除该表● tblspace 编号 - Hexadecimal
UNIQID当向行指定新的序列值时记录● tblspace ID - Hexadecimal
● 唯一 ID - Decimal
UNIQ8ID当向行指定新的序列8 值时记录● tblspace ID - Hexadecimal
● 唯一 ID - Decimal
UPDAFT更新后映象● tblspace ID - Hexadecimal
● rowid - Hexadecimal
UPDBEF更新前映象● tblspace ID - Hexadecimal
● rowid - Hexadecimal
XAPREPARE参与者可以提交该 XA 事务● (无) - (无)

智能大对象的日志记录类型

所有智能大对象日志记录都是 SBLOB 类型。每个智能大对象日志记录包含 6 个头列(在逻辑日志记录头中描述)、记录子类型和其他信息。信息的显示会根据记录子类型而变化。

下表列出了智能大对象的所有记录类型。子类型列描述了智能大对象的记录类型。操作列标识生成日志条目的数据库服务器操作类型。附加列和格式列描述了每个记录类型出现什么信息。

记录子类型 操作 附加列 格式
CHALLOC 分配 chunk extent extent [chk, page, len] Decimal
标识 Hexadecimal
CHCOMBINE 组合用户数据 Extent 列表中的两页 chunk 编号 Decimal
第一页 Decimal
第二页 Decimal
CHFREE 释放 chunk extent extent [chk, page, len] Decimal
CHSPLIT 分割用户数据 Extent 列表中的两页 chunk 编号 Decimal
要分割的 UDFET 页 Decimal
CREATE 创建智能大对象 智能大对象 ID [sbs, chk, page, oid] Decimal
lomaphdr 中 extent 的数量 Decimal
DELETE 删除提交的智能大对象 智能大对象 ID [sbs, chk, page, oid] Decimal
EXTEND 向智能大对象的 extent 列表添加 extent 智能大对象 ID [sbs, chk, page, oid] Decimal
extent [chk, page, len] Decimal
lomap 溢出页号 Decimal
HDRUPD 更新智能大对象的头页 智能大对象 ID [sbs, chk, page, oid] Decimal
旧 EOF 偏移量 String
新 EOF 偏移量 String
旧的时间 Decimal
新的时间 Decimal
PDELETE 对提交的待删除智能大对象进行排队 e智能大对象 ID [sbs, chk, page, oid] Decimal
PTRUNC 对提交的待截断智能大对象进行排队 智能大对象 ID [sbs, chk, page, oid] Decimal
旧的偏移量 String
新的偏移量 String
REFCOUNT 增加或减少智能大对象的引用计数 智能大对象 ID [sbs, chk, page, oid] Decimal
如果增加,那么为 1 ;如果减少,那么为 0 Decimal
UDINSERT,UDINSERT_LT 附加新的用户数据 chunk Decimal
chunk 中的页 Decimal
页中的偏移量 Decimal
数据长度 Decimal
UDUPAFT,UDUPAFT_LT 如果 UDWRITE 代价太高,那么更新用户数据后映象 chunk Decimal
chunk 中的页 Decimal
页中的偏移量 Decimal
数据长度 Decimal
UDUPBEF,UDUPBEF_LT 如果 UDWRITE 代价太高,那么更新用户数据前映象 chunk Decimal
chunk 中的页 Decimal
页中的偏移量 Decimal
数据长度 Decimal
UDWRITE,UDWRITE_LT 更新用户数据(差分映象) chunk Decimal
chunk 中的页 Decimal
页中的偏移量 Decimal
写入前的长度 Decimal
写入后的长度 Decimal
不同映象块的数量 Decimal

下图显示了 onlog 输出中的智能大对象记录的示例。前两条记录显示 extent 已释放。下一组记录(其上下两侧分别是 BEGIN 和 COMMIT)显示存储器的分配和智能大对象的创建。

图: onlog 输出中的智能大对象记录

cankao36.png